/**
 * @Author wangyl
 * @E-mail wangyl0629@foxmail.com
 **/
package com.wyl.xue.admin.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wyl.xue.admin.system.mybatis.entity.SystemRoles;
import com.wyl.xue.admin.system.vo.RoleInfoVo;

import java.util.List;

public interface Role {
    /**
     * @Description 添加角色信息
     * @param roleInfoVo
     * @return void
     * @Date 2020/11/8 18:43
     * @Author wangyl
     * @Version V1.0
     */
    void addRole(RoleInfoVo roleInfoVo);

    /**
     * @Description 删除角色信息
     * @param id
     * @return void
     * @Date 2020/11/8 18:43
     * @Author wangyl
     * @Version V1.0
     */
    void deleteRole(long id);

    /**
     * @Description 获取所有角色信息
     * @param
     * @return java.util.List<com.wyl.xue.admin.system.vo.RoleInfoVo>
     * @Date 2020/11/8 18:44
     * @Author wangyl
     * @Version V1.0
     */
    List<RoleInfoVo> getRoleAll();

    /**
     * @Description 分页获取角色信息
     * @param page
     * @param size
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.wyl.xue.admin.system.mybatis.entity.SystemRoles>
     * @Date 2020/11/8 18:44
     * @Author wangyl
     * @Version V1.0
     */
    IPage<SystemRoles> getRoleForPage(int page, int size);

    /**
     * @Description 更新角色信息
     * @param roleInfoVo
     * @return void
     * @Date 2020/11/8 18:44
     * @Author wangyl
     * @Version V1.0
     */
    void updateRole(RoleInfoVo roleInfoVo);

    /**
     * @Description
     * @param roleId
     * @return java.util.List<java.lang.Long>
     * @Date 2020/11/11 14:43
     * @Author wangyl
     * @Version V1.0
     */
    List<Long> getRoleMenusByRoleId(long roleId);

    /**
     * @Description 通过用户id 获取角色id
     * @param userId
     * @return java.util.List<java.lang.Long>
     * @Date 2020/11/16 23:17
     * @Author wangyl
     * @Version V1.0
     */
    List<Long> getRoleIdsByUserId(long userId);

    /**
     * @Description 搜索角色信息
     * @param roleInfoVo
     * @return java.util.List<com.wyl.xue.admin.system.mybatis.entity.SystemRoles>
     * @Date 2020/11/20 16:17
     * @Author wangyl
     * @Version V1.0
     */
    List<SystemRoles> searchRole(RoleInfoVo roleInfoVo);
}
